﻿// ***********************************************************************
// Assembly         : Logica
// Author           : Diego
// Created          : 03-02-2014
//
// Last Modified By : Diego
// Last Modified On : 03-02-2014
// ***********************************************************************
// <copyright file="LOG_Estado_Cliente.cs" company="">
//     Copyright (c) . All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using AccesoDatos.Modulos.ClasesAccesoDatos;
using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// The ClasesLogica namespace.
/// </summary>
namespace Logica.Modulos.ClasesLogica
{   /*Título: LOG_DetalleEstructural
      Tipo: Clase
      Resumen:Hace el llamado de diferentes funciones de acceso a datos, sobrecargando métodos con objetos que viene del GUI. 
      Retorno: N/A
      Autor: Julián Gaona
      Fecha: 13/07/13*/
    /// <summary>
    /// Class LOG_Estado_Cliente.
    /// </summary>
   public class LOG_Estado_Cliente:Negocio
   {    /*Título: CRE_Estado_Cliente
          Tipo: Método
          Variables: 
             
            objBD
            obj
         
          Resumen:Método recibe propiedades objeto de tipo MOD_Estado_Cliente, abre la conexión a la base de datos y  sobre carga la función CRE_Estado_Cliente de acceso a datos con el objeto. Al terminar cierra la conexión a la Base de Datos. 
          Retorno: N/A
          Autor: Julián Gaona
          Fecha: 13/07/13*/
       /// <summary>
       /// Crs the e_ estado_ cliente.
       /// </summary>
       /// <param name="obj">The object.</param>
       public void CRE_Estado_Cliente(MOD_Estado_Cliente obj)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Estado_Cliente objBD = new AD_Estado_Cliente();

                objBD.CRE_Estado_Cliente(this.comando, obj);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }
       /*Título: DEL_Estado_Cliente
         Tipo: Método
         Variables: 
             
           codigo
           objBD
         
         Resumen:Método recibe el código del estado, abre la conexión a la base de datos y  sobre carga la función DEL_Estado_Cliente de acceso a datos con el código. Al terminar cierra la conexión a la Base de Datos. 
         Retorno: N/A
         Autor: Julián Gaona
         Fecha: 13/07/13*/
       /// <summary>
       /// Des the l_ estado_ cliente.
       /// </summary>
       /// <param name="codigo">The codigo.</param>
       public void DEL_Estado_Cliente(int codigo)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Estado_Cliente objBD = new AD_Estado_Cliente();

                objBD.DEL_Estado_Cliente(this.comando, codigo);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }
       /*Título: UPD_Cliente
         Tipo: Método
         Variables: 
             
           obj
           objBD
         
         Resumen:Método recibe propiedades objeto de tipo MOD_Estado_Cliente, abre la conexión a la base de datos y  sobre carga la función UPD_Estado_Cliente de acceso a datos con el objeto. Al terminar cierra la conexión a la Base de Datos. 
         Retorno: N/A
         Autor: Julián Gaona
         Fecha: 13/07/13*/
       /// <summary>
       /// Ups the d_ estado_ cliente.
       /// </summary>
       /// <param name="obj">The object.</param>
       public void UPD_Estado_Cliente(MOD_Estado_Cliente obj)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Estado_Cliente objBD = new AD_Estado_Cliente();

                objBD.UPD_Estado_Cliente(this.comando, obj);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }

        }
       /*Título: SEL_Grid_Estado_Cliente
        Tipo: Método
        Variables: 
             
          lista
         
        Resumen:Método abre la conexión a la base de datos y  sobre carga la función SEL_Grid_Estado_Cliente de acceso a datos con la lista de tipo MOD_Estado_Cliente. Al terminar cierra la conexión a la Base de Datos. 
        Retorno: lista
        Autor: Julián Gaona
        Fecha: 13/07/13*/
       /// <summary>
       /// Ses the l_ grid_ estado_ cliente.
       /// </summary>
       /// <returns>List{MOD_Estado_Cliente}.</returns>
       public List<MOD_Estado_Cliente> SEL_Grid_Estado_Cliente()
        {
            try
            {
                this.AbrirConexion();

                AD_Estado_Cliente objBD = new AD_Estado_Cliente();

                List<MOD_Estado_Cliente> lista = objBD.SEL_Grid_Estado_Cliente(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }
       /*Título: SEL_Estado_ClienteByID
         Tipo: Método
         Variables: 
             
           lista
         
         Resumen:Método abre la conexión a la base de datos y  llama la función SEL_Estado_ClienteByID de acceso a datos sobrecargando la lista de tipo MOD_Estado_Cliente. Al terminar cierra la conexión a la Base de Datos. 
         Retorno: objCliente
         Autor: Julián Gaona
         Fecha: 13/07/13*/
       /// <summary>
       /// Ses the l_ estado_ cliente by identifier.
       /// </summary>
       /// <param name="ESTCLI_CODESTADO">The estcl i_ codestado.</param>
       /// <returns>MOD_Estado_Cliente.</returns>
       public MOD_Estado_Cliente SEL_Estado_ClienteByID(int ESTCLI_CODESTADO)
        {
            try
            {
                this.AbrirConexion();

                AD_Estado_Cliente objBD = new AD_Estado_Cliente();

                MOD_Estado_Cliente objCliente = objBD.SEL_Estado_ClienteByID(this.comando, ESTCLI_CODESTADO);

                this.CerrarConexion();

                return objCliente;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }

        }
       /*Título: SEL_Estado_ClienteByNombre
        Tipo: Método
        Variables: 
          objBD
          cant_cli
         
        Resumen:Método abre la conexión a la base de datos y  llama la función SEL_Estado_ClienteByNombre de acceso a datos sobrecargando la cantidad de clientes. Retorna cantidad de clientes. Al terminar cierra la conexión a la Base de Datos. 
        Retorno: cant_cli
        Autor: Julián Gaona
        Fecha: 13/07/13*/
       /// <summary>
       /// Ses the l_ estado_ cliente by nombre.
       /// </summary>
       /// <param name="EST_CLI_NOMBRE">The es t_ cl i_ nombre.</param>
       /// <returns>System.Int32.</returns>
       public int SEL_Estado_ClienteByNombre(string EST_CLI_NOMBRE)
        {
            try
            {
                this.AbrirConexion();

                AD_Estado_Cliente objBD = new AD_Estado_Cliente();

                int cant_cli = objBD.SEL_Estado_ClienteByNombre(this.comando, EST_CLI_NOMBRE);

                this.CerrarConexion();

                return cant_cli;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }

        }

    }
}
